package com.demo3_求最长子串.text2;

import java.util.ArrayList;

/*
给定一个字符串 s ，请你找出其中不含有重复字符的 最长子串 的长度。
          思路:
          1,用集合将读到的字符存储进集合,
          2,每存之前先进行验证是否包含该元素,不包含则添加
          3,需要用到2个集合,第一个集合存储遍历中长度最长的, 第2个存临时的

          第一次提交失败:  忽略了  "dvdf"  这种情况.

 */
public class Text3 {
    public static void main(String[] args) {

        String s="aaaaaa";
        String s1="abcccccccc";
        String s2="abcd";
        String s3="dvdf";
        System.out.println(new Solution().lengthOfLongestSubstring(s));
        System.out.println(new Solution().lengthOfLongestSubstring(s1));
        System.out.println(new Solution().lengthOfLongestSubstring(s2));
        System.out.println(new Solution().lengthOfLongestSubstring(s3));
    }
}

class Solution {
    public int lengthOfLongestSubstring(String s) {

        ArrayList<Character> tempList=new ArrayList<>();
        int max=tempList.size();
        for (int i = 0; i < s.length(); i++) {
            for (int j = i; j < s.length(); j++) {
                if(!tempList.contains(s.charAt(j))){
                    tempList.add(s.charAt(j));
                }else{
                    if (tempList.size()>max)
                        max=tempList.size();
                    if(j==s.length())
                        return max>tempList.size()? max:tempList.size();
                    tempList.clear();
                    break;
                }
            }
        }
        return max>tempList.size()? max:tempList.size();
    }
}